<?php
class User extends AppModel {
	public $name = 'User';

	public $primaryKey = 'id';
    
    public $hasOne = array(
        'UsersRecoverpwd' => array(
            'className'    => 'UsersRecoverpwd',
            'dependent'    => true
        )
    );

	public $validate = array(
		
		'firstname' => array(
			'rule1' => array(
				'rule' => 'isName',
				'message'  => 'requerido, solo se permiten letras, espacios, punto (.), guión (-) y comilla (\').',
				'allowEmpty' => false,
				'required' => true
			)
		),
        
		'lastname' => array(
			'rule1' => array(
				'rule' => 'isName',
				'message'  => 'requerido, solo se permiten letras, espacios, punto (.), guión (-) y comilla (\').',
				'allowEmpty' => false,
				'required' => true
			)
		),
        
		'username' => array(
			'rule1' => array(
				'rule'     => 'alphaNumeric',
				'message'  => 'requerido, solo letras y nùmeros.',
				'allowEmpty' => false,
				'required' => true
			),
			'rule2' => array(
				'rule'     => 'isUnique',
				'message'  => 'Nombre de usuario ya existe, Por favor, utilize otro.'
			)
		),
		
		'email' => array(
			'rule1' => array(
				'rule' => 'email',
				'message'  => 'requerido, debe ser una direccion de correo válida',
				'allowEmpty' => false,
				'required' => true
			),
			'rule2' => array(
				'rule'     => 'isUnique',
				'message'  => 'Correo electronico ya esta registrado. Por favor utilize otro.'
			)
		),
        
        'password' => array (
            'rule'    => array('between', 5, 40),
            'message'  => 'Requerido, entre 5 y 40 caractéres',
            'allowEmpty' => false,
            'required' => true
        ),
        
        'confirm_password' => array(
            'rule1'=>array (
                'rule' => 'confirmPasswordMatch',
                'message' => 'Requerido, debe coincidir con Contraseña',
				'allowEmpty' => false,
				'required' => true
            )
        ),
		
		'recaptcha_response_field' => array(
			'rule1' => array(
                'rule' => array('checkRecaptcha', 'recaptcha_challenge_field'),
                'message' => 'You did not enter the words correctly. Please try again.',
            ),
		),
        
        'accept_conditions' => array(
            'rule1' => array(
                'rule' => 'alphaNumeric',
                'message' => 'Debe aceptar condiciones.',
				'allowEmpty' => false,
				'required' => true
            )
        )
	);

	public function isName($check) {
		$value = array_values($check);
        $value = $value[0];

		return preg_match('/^[a-zA-Z0-9\s\.\\\'"\-]+$/', $value);
	}
    
    public function confirmPasswordMatch($check) {
        $value = array_values($check);
        $value = $value[0];
        
        if ($this->data['User']['password'] !== $value)
        {
            return false;
        }
        return true;
    }
}
?>
